<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //函数
        function Cat(){
        }
        //1、prototype是函数中的属性，称为原型对象，所有该函数构造的对象共享原型中的属性和方法
        console.dir(Cat);
        //2、__proto__ [[prototype]] 对象中的__proto__指向其构造器的原型
        var mycat=new Cat();
        console.dir(mycat);
        console.log(Cat.prototype===mycat.__proto__);
        //3、constructor是构造器的原型中的属性，指回构造器
        console.log(Cat.prototype.constructor===Cat);

        //4、构造函数的原型对象__proto__指向Object.prototype
        console.log(Cat.prototype.__proto__===Object.prototype);

        //5、Object.prototype的__proto__指向null
        console.log(Object.prototype.__proto__);

        //6、函数是对象，是对象就拥有__proto__属性，因为函数都是Function构造的，
        //   所以所有的函数__proto__都指向Function.prototype
        console.log(Cat.__proto__===Function.prototype);
        console.log(Object.__proto__===Function.prototype);
        console.log(Function.__proto__===Function.prototype);
    </script>
</body>
</html>